﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Planisoft.Entities;
using PagedList;

namespace Planisoft.DAO
{
    public class DependientesDAO : MasterDataAcces, IDependientesDAO
    {

        public List<Dependiente> GetAllFromDependiente()
        {
            throw new NotImplementedException();
        }

        public List<Dependiente> GetFromDependienteByIdTrabajador(int id)
        {
            var query = from p in Context.Dependientes
                        where p.IdTrabajador.Equals(id)
                        select p;

            return query.ToList();
        }

        public IPagedList<Dependiente> GetAllFromDependienteByIdTrabajador(int id, int page, int size)
        {
            var query = from p in Context.Dependientes
                        where p.IdTrabajador.Equals(id)
                        select p;
            return query.OrderBy(p => p.IdDependiente).ToPagedList(page, size);
        }


        public void EliminarDependiente(int id)
        {
            var exite = Context.Dependientes.Find(id);
            if (exite != null)
            {
                Context.Dependientes.Remove(exite);
                Context.SaveChanges();
            }
        }

        public void RegistrarDependiente(Dependiente dependiente)
        {
            Context.Dependientes.Add(dependiente);
            Context.SaveChanges();
        }

        public void actualizar(Dependiente dependiente)
        {
            //var existe = Context.Dependientes.Find(dependiente.IdDependiente);
            //if (existe != null)
            //{
            Context.Entry(dependiente).State = System.Data.EntityState.Modified;
            Context.SaveChanges();
            //}
        }


        public Dependiente GetFromDependienteById(int id)
        {
            var query = from p in Context.Dependientes
                        where p.IdDependiente.Equals(id)
                        select p;

            return query.SingleOrDefault();
        }
    }
}
